package com.itheima.dao;

import com.github.pagehelper.Page;
import com.itheima.pojo.Role;
import org.omg.CORBA.INTERNAL;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 角色接口层
 * @author wangxin
 * @version 1.0
 */
public interface RoleDao {

    Set<Role> findRolesByUserId(Integer userId);

    //分页查询角色列表
    Page<Role> findPage(String value);

    //根据角色id删除角色
    void findRoleIdDeleteRole(Integer roleId);

    //添加用户
    void add(Role role);

    //添加角色与菜单的关系
    void setMenuAndRole(Map<String,Object> map);

    //添加角色与权限的关系
    void setPermissionAndRole(Map<String,Object> map);

    List<Role> findAll();

    //根据角色id获取角色信息
    Role findById(Integer roleId);

    //根据角色id查询角色关联的菜单id
    List<Integer> findRoleByMenu(Integer roleId);

    //根据角色id查询角色关联的权限id
    List<Integer> findRoleByPermission(Integer roleId);

    //删除角色关联的菜单信息
    void deleteRoleByMenu(Integer roleId);

    //删除角色关联的权限信息
    void deleteRoleByPermission(Integer roleId);

    //修改角色信息
    void editRole(Role role);

    //查询关键字是否唯一
    Integer findRoleKeyWordBycount(String keyword);
}
